Modern companies often rely on multiple enterprise applications (computer programs and systems designed to provide specific functionality) to help manage and run their businesses. For example, CRM (Customer Relationship Management) tools are often used by companies to manage their relationships with customers based on analysis of information stored for existing customers (and potential customers). In many cases, a company will have multiple independently established computer systems designed to address specific business processes or objectives. Such independent systems often come from different vendors and often cannot be readily integrated with each other.
Enterprise application integration involves the use of various methods, software and computer systems to integrate a set of enterprise computer applications, and various specific integrations of one application with another have been made previously. In addition, a more recent approach has involved moving toward a service-oriented architecture (SOA) in which resources on a network are made available as independent services that can be accessed without knowledge of their underlying platform. A SOA need not be tied to a specific technology and may be implemented using a wide range of interoperability standards, such as Remote procedure call (RPC), Distributed Component Object Model (DCOM), object request broker (ORB), and Web Services Description Language (WSDL).